f667db
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2010 the original author or authors.
+ * Copyright 2002-2012 the original author or authors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -135,9 +135,10 @@
public class PropertyPlaceholderHelper {
 			int endIndex = findPlaceholderEndIndex(buf, startIndex);
 			if (endIndex != -1) {
 				String placeholder = buf.substring(startIndex + this.placeholderPrefix.length(), endIndex);
-				if (!visitedPlaceholders.add(placeholder)) {
+				String originalPlaceholder = placeholder;
+				if (!visitedPlaceholders.add(originalPlaceholder)) {
 					throw new IllegalArgumentException(
-							"Circular placeholder reference '" + placeholder + "' in property definitions");
+							"Circular placeholder reference '" + originalPlaceholder + "' in property definitions");
 				}
 				// Recursive invocation, parsing placeholders contained in the placeholder key.
 				placeholder = parseStringValue(placeholder, placeholderResolver, visitedPlaceholders);
@@ -173,7 +174,7 @@
public class PropertyPlaceholderHelper {
 					throw new IllegalArgumentException("Could not resolve placeholder '" + placeholder + "'");
 				}
 
-				visitedPlaceholders.remove(placeholder);
+				visitedPlaceholders.remove(originalPlaceholder);
 			}
 			else {
 				startIndex = -1;
